  package com.SparkCore.RDD.Operator.Transform

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}


 /**
 *将 List("Hello", "hive", "hbase", "Hadoop")根据单词首写字母进行分组。
  */
object Spark06_RDD_Operator_Transform_GroupBy1 {

  def main(args: Array[String]): Unit = {

    //创建环境
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    val sparkContext = new SparkContext(sparkConf)

    //创建RDD算子 -- groupBy
    val rdd = sparkContext.makeRDD(List("hello" , "Scala" , "Hadoop" , "Spark"), 2)

    //groupBy 会把数据源中的每一个数据进行分组判断，根据返回的分组key进行分组
    //相同的key值的数据会放到一个组中


    val groupRDD: RDD[(Char, Iterable[String])] = rdd.groupBy(_.charAt(0))

    groupRDD.collect().foreach(println)

    //关闭环境
    sparkContext.stop()
  }
 }
